#ifndef THREADOS_HPP
#define THREADOS_HPP

#include <stdint.h>
#include <stdbool.h>
#include "FreeRTOS.h"
#include "task.h"

namespace systemos
{
	class threados
	{
		private:
			TaskFunction_t mTaskFunction;
			TaskHandle_t mTaskHandle;
		public:
			static void AppStart(void);
		public:
			const char *Name;			///<线程名称
			uint32_t StackDeep;		///<栈深度
			void *Bind;						///<绑定数据
			uint8_t Prio;					///<优先级
			/** 
			* @brief      构造函数
			* @param[in]  tTaskFunction 线程
			* @retval    	 None
			*/
			threados(TaskFunction_t tTaskFunction);
			
			/** 
			* @brief      析构函数
			* @retval     None
			*/
			~ threados(void);

			/** 
			* @brief      删除任务
			* @retval    	 None
			*/
			void Delete(void);

			/** 
			* @brief      启动任务
			* @retval    	 启动结果
			*/
			bool Start(void);

			/** 
			* @brief      恢复任务
			* @retval    	 操作结果
			*/
			bool Resume(void);

			/** 
			* @brief      暂停任务
			* @retval    	 操作结果
			*/
			bool Pause(void);
	};
}

#endif
